Methods and system for controlling a movable object

ABSTRACT

A computer-implemented method for controlling a controllable object includes determining a change in a baseline between a controlling object and the controllable object based on measurements from a first location sensor of the controlling object and a second location sensor of the controllable object, mapping the baseline change to a corresponding change in a navigation path of the controllable object based at least in part on a mapping function, generating one or more control commands according to the mapping, and controlling the controllable object to effect the state change according to the one or more control commands.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. application Ser.No. 15/953,117, filed on Apr. 13, 2018, which is a continuationapplication of International Application No. PCT/CN2017/073093, filed onFeb. 8, 2017, the entire contents of both of which are incorporatedherein by reference.

BACKGROUND OF THE DISCLOSURE

Modern unmanned aerial vehicles (UAVs) are used to perform a variety oftasks such as navigation, surveillance and tracking, remote sensing,search and rescue, scientific research, and the like. The ability tocontrol the UAVs in a precise fashion (e.g., at a centimeter orsub-centimeter level) is often desirable for achieving such tasks.Existing techniques fail to enable control of the UAVs with asatisfactory level of precision.

SUMMARY OF THE DISCLOSURE

Methods, systems and devices for controlling a movable object areprovided. According to embodiments, a computer-implemented method forcontrolling a controllable object is provided. The method comprisesdetermining a change in a baseline between a controlling object and thecontrollable object based on measurements from a first location sensorof the controlling object and a second location sensor of thecontrollable object, mapping the baseline change to a correspondingstate change for the controllable object based at least in part on amapping function, and generating one or more control commands to effectthe state change for the controllable object.

In some embodiments, the controllable object is an unmanned aerialvehicle (UAV).

In some embodiments, the controlling object is a UAV.

In some embodiments, the first location sensor and the second locationsensor are satnav receivers.

In some embodiments, determining the baseline change comprisesdetermining a baseline between the controlling object and thecontrollable object with centimeter level or sub-centimeter levelaccuracy.

In some embodiments, wherein determining the baseline change comprisesobtaining double-differenced measurements based on the measurements fromthe first location sensor and the second location sensor; and fixingcarrier phase ambiguities based on the double differenced measurements.

In some embodiments, the state change for the controllable object is achange in position and the control commands are position controlcommands. In some embodiments, the state change for the controllableobject comprises an activation or a deactivation of a predefined routineof the controllable object. In some embodiments, the state change forthe controllable object comprises changing an operation of a componentor a payload of the controllable object.

In some embodiments, the method further comprises determining an updatedbaseline between the controllable object and the controlling objectafter generating the one or more control commands; and generating one ormore additional control commands to effect the state change for thecontrollable object based on the updated baseline.

According to embodiments, a remote control terminal is provided. Theremote control terminal comprises a satnav receiver configured toreceive satellite signals from one or more satellites; a memory thatstores one or more computer-executable instructions; and one or moreprocessors configured to access the memory and execute thecomputer-executable instructions to perform a method comprisingdetermining a change in a baseline between the remote control terminaland a controllable object based at least in part on measurements fromthe satnav receiver, mapping the baseline change to a correspondingstate change for the controllable object based at least in part on amapping function, and generating one or more control commands to effectthe state change for the controllable object.

In some embodiments, the controlling object is an unmanned aerialvehicle (UAV).

In some embodiments, determining the baseline change comprises receivingadditional measurements from the controllable object, and fixing carrierphase ambiguities based on the measurements from the satnav receiver andthe additional measurements from the controllable object.

In some embodiments, the state change for the controllable object is achange in position and the control commands are position controlcommands. In some embodiments, the state change for the controllableobject is a change in velocity and the control commands are velocitycontrol commands. In some embodiments, the state change for thecontrollable object comprises changing an operation of a component or apayload of the controllable object. In some embodiments, the statechange for the controllable object comprises a change in an attribute ofa navigation path of the controllable object.

In some embodiments, the method further comprises determining an updatedbaseline between the remote control terminal and the controllable objectafter generating the one or more control commands; and generating one ormore additional control commands to effect the state change for thecontrollable object based on the updated baseline.

According to embodiments, an unmanned aerial vehicle (UAV) is provided.The UAV comprises a satnav receiver configured to receive satellitesignals from one or more satellites; a memory that stores one or morecomputer-executable instructions; and one or more processors configuredto access the memory and execute the computer-executable instructions toperform a method comprising determining a change in a baseline between acontrolling object and the UAV based at least in part on measurementsfrom the satnav receiver; mapping the baseline change to a correspondingstate change for the UAV based at least in part on a mapping function;and generating one or more control commands to effect the state changefor the UAV.

In some embodiments, determining the baseline change comprises receivingadditional measurements from the controlling object; and fixing carrierphase ambiguities based on the measurements from the satnav receiver andthe additional measurements from the controlling object.

In some embodiments, the method further comprises determining an updatedbaseline between the UAV and the controlling object after execution ofthe one or more control commands; and generating one or more additionalcontrol commands to effect the state change for the UAV based on theupdated baseline.

According to embodiments, a control system is provided. The controlsystem comprises a memory that stores one or more computer-executableinstructions; and one or more processors configured to access the memoryand execute the computer-executable instructions to perform a methodcomprising determining a change in a baseline between a controllingobject and the controllable object based on measurements from a firstlocation sensor of the controlling object and a second location sensorof the controllable object; mapping the baseline change to acorresponding state change for the controllable object based at least inpart on a mapping function; and generating one or more control commandsto effect the state change for the controllable object.

It shall be understood that different aspects of the disclosure can beappreciated individually, collectively, or in combination with eachother. Various aspects of the disclosure described herein may be appliedto any of the particular applications set forth below or datacommunication between any other types of movable and/or stationaryobjects.

Other objects and features of the present disclosure will becomeapparent by a review of the specification, claims, and appended figures.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the disclosure are set forth with particularity inthe appended claims. A better understanding of the features andadvantages of the present disclosure will be obtained by reference tothe following detailed description that sets forth illustrativeembodiments, in which the principles of the disclosure are utilized, andthe accompanying drawings of which:

FIG. 1 illustrates an exemplary method for controlling a movable object,in accordance with embodiments.

FIG. 2 illustrates exemplary systems for implementing the techniquesdescribed herein, in accordance with embodiments.

FIG. 3 illustrates additional exemplary system for implementing thetechniques described herein, in accordance with embodiments.

FIG. 4 illustrates an exemplary controlling object, in accordance withembodiments.

FIG. 5 illustrates an exemplary process for controlling an object, inaccordance with embodiments.

FIG. 6 illustrates a pair of exemplary receivers, in accordance withembodiments.

FIG. 7 illustrates an exemplary process for determining a baselinebetween a pair of receivers, in accordance with embodiments.

FIG. 8 illustrates exemplary control methods based on baseline change,in accordance with embodiments.

FIG. 9 illustrates additional exemplary control methods based onbaseline change, in accordance with embodiments.

FIG. 10 illustrates an exemplary process for controlling a state of acontrollable object, in accordance with embodiments.

FIG. 11 illustrates an exemplary control scheme for controlling a UAV,in accordance with embodiments.

FIG. 12 illustrates a movable object including a carrier and a payload,in accordance with embodiments.

FIG. 13 is a schematic illustration by way of block diagram of a systemfor controlling a movable object, in accordance with embodiments.

DETAILED DESCRIPTION OF THE DISCLOSURE

The capability to provide precise remote control of UAVs is highlydesirable, especially given decreasing UAV sizes and more complexdeployment environment. For instance, it may be desirable to be able tocontrol of the UAV's movement at a centimeter-level or asub-centimeter-level, in order to enable maneuvers in a tight space, orto perform spatially-sensitive operations.

Existing remote control methods fail to allow for precise control ofUAVs. For example, a traditional remote control terminal equipped with ajoystick may be capable of translating mechanical movements of thejoystick into corresponding remote control commands for changing anorientation or a velocity of the UAV. A remote control terminal (e.g.,smart phones or tablets) equipped with one or more sensors (e.g.,gyroscopes, accelerometers) can detect movements (e.g., a change inorientation or acceleration) of the terminal, and translate suchmovements into corresponding control commands for the UAV. Such methods,however, are typically limited to controlling an orientation or avelocity of a UAV, and fail to provide precise positional control of theUAV.

The systems, devices, and methods are provided for precisely controllingmovable objects (e.g., UAVs) that address some or all problems discussedabove. In particular, a baseline vector (also referred to as a baseline)between a controlling movable object (e.g., a remote control terminalfor a UAV) and a controllable movable object (e.g., a UAV) can bedetermined with centimeter level or sub-centimeter level (e.g.,millimeter level) accuracy. For example, the baseline can be determinedusing real time kinematic (RTK) or similar techniques based onmeasurements from location sensors carried by the controlling movableobject and/or the controlled movable object. Examples of locationsensors include satellite navigation (satnav) system receiver (alsoreferred to as satnav receivers).

A change in the baseline (also referred to as a baseline change, abaseline vector change, or a baseline change vector) can be mapped,using a predetermined mapping function, to a corresponding state changeof the controllable object. The baseline change can result from movementof the controlling movable object, the controlled movable object, orboth. The corresponding state change of the controllable object caninclude a position change, a change in velocity and/or acceleration, anorientation change, a navigation path change, an activation ordeactivation of a functionality of the controllable object, and thelike. Advantageously, precise measurement of the baseline between thecontrolling and the controlled objects with centimeter or sub-centimeteraccuracy allows precise control of the controlled object. These andother embodiments are discussed in light of the figures.

FIG. 1 illustrates an exemplary method for controlling a movable object,in accordance with embodiments. In particular, a baseline vector change108 between a controlling movable object 102 (also referred to as acontrolling object, controlling device or controlling platform) and acontrollable movable object 104 (also referred to as a controllableobject) can be mapped to a corresponding state change 112 of thecontrollable movable object 104.

The controlling movable object 102 can include a remote controlterminal, a UAV, or any other suitable movable object described hereinthat is configured to control another object. A controllable movableobject 104 can include a UAV or any other suitable movable objectdescribed herein that can be controlled remotely by another object. Forexample, the controlling movable object 102 may be configured to controlthe controllable movable object 104. The controllable movable object 104may or may not be configured to move autonomously.

A baseline vector (also referred to as a baseline) between thecontrolling movable object 102 and the controllable movable object 104can be measured. The baseline vector can be from the controlling movableobject 102 to the controllable movable object 104, or vice versa. Thebaseline vector can comprise a plurality of vector components alongrespective axes (e.g., X, Y, and Z axes) of a suitable coordinate systemsuch as a global or local coordinate system.

The baseline vector can be measured on a periodic basis. In someembodiments, the baseline vector can be measured at a frequency of 0.1Hz, 0.5 Hz, 1 Hz, 5 Hz, 10 Hz, 20 Hz, 50 Hz, or any other suitablefrequency. The frequency at which the baseline vector is measured may beconfigurable, for example, by a user or by a system administrator. Themeasurement frequency may be constant or vary from time to time, basedon factors such as availability of resources (e.g., CPU, memory, networkbandwidth), conditions of operating environment (e.g., signal strength,interference, signal-to-noise ratio (SNR), weather), user commands, andthe like.

As illustrated in FIG. 1, a first baseline vector 106 may be measured ator near a first point in time, t1, when the controlling movable object102 is at position p1 116 and the controllable movable object 104 is atposition p3 120. Subsequently, a second baseline vector 110 may bemeasured at or near a second point in time, t2, when the controllingmovable object 102 moves to position p2 118 and the controllable movableobject 104 is at position p3 120. Subsequently, a third baseline vector114 may be measured at or near a third point in time, t3, when thecontrolling movable object 102 is at position p2 118 and thecontrollable movable object 104 moves to position p4 122.

The baseline vector can be determined based at least in part onmeasurements from a first location sensor 103 carried by the controllingmovable object 102 and/or measurements from a second location sensor 105carried by the controllable movable object 104. In general, the positionof a movable object is considered the same as the position of a locationsensor of the movable object. The location sensors can be configured toobtain information useful for determining locations of the respectivelocation sensors. Examples of location sensors include satnav receivers.

A satnav system uses satellites to provide autonomous geo-spatialpositioning. Specifically, a satnav receiver can be configured toreceive satellite signals transmitted by one or more satellites, forexample, by radio. The satellite signals can be processed (e.g., bycircuits of the satnav receiver or a processor operably connected to thesatnav receiver) to determine the location (e.g., longitude, latitude,and/or altitude) of the satnav receiver. Satnav systems can provideglobal or regional coverage. A satnav system with global coverage can bereferred to as a global navigation satellite system (GNSS). Examples ofa GNSS include NAVSTAR Global Positioning System (GPS) provided by theUnited States, GLONASS provided by Russia, BeiDou Navigation SatelliteSystem (or Beidou-2) provided by China, and Galileo provided by theEuropean Union. Examples of a satnav system with regional coverageinclude Beidou-1 provided by China, NAVigation with Indian Constellation(NAVIC) provided by India, and Quazi-Zenith Satellite System (QZSS)provided by Japan.

The satellite signals received by a satnav receiver can include rangingcodes and navigation data (also referred to as navigation messages).Ranging codes can include pseudo random noise (PRN) numbers and can becorrelated by a satnav receiver to determine a travel time of asatellite signal to the receiver (and hence the distance between thesatellite and the receiver). The PRN numbers can includecoarse/acquisition (C/A) codes for the general public and restrictedprecision (P) codes military use. The navigation data can includedetailed information about a satellite such as time information, clockbias parameters, the satellite's status and health, satellite ephemeris(e.g., orbital information), almanac data (e.g., satellite networksynopsis, error correction), and the like. The ranging codes and thenavigation data can be modulated onto a carrier wave and transmittedfrom a satellite to a satnav receiver. In some embodiments, the rangingcodes and/or navigation data can be transmitted on more than onefrequency, such as on L1 (1575.42 MHz) and at on L2 (1227.60 MHz).Transmission of the satnav satellite signals at multiple frequencies canprovide the benefits of redundancy, resistance to jamming, and errorcorrection. In various embodiments, a satnav receiver may be configuredto receive signals transmitted at one, two, or more frequencies.

The satellite signals (e.g., GNSS signals) received by satnav receiverscan be used to make measurements (also referred to as satnavmeasurements) such as related to time, distance, position, and the like.The satnav measurements can include code phase measurements and carrierphase measurements. Advantageously, the use of carrier phasemeasurements can provide measurements with centimeter level orsub-centimeter level (e.g., millimeter level) accuracy. Additionally,the satellite signals received from and/or by different entities can bedifferenced to reduce certain measurement errors, using any suitabledifferential processing techniques (e.g., single differencing, doubledifferencing, or triple differencing techniques). For example, satellitesignals received from different satellites can be differenced to derivesatellite-differenced measurements, eliminating or mitigatingreceiver-related errors (e.g., receiver clock errors). Additionally oralternatively, satellite signals received by different receivers can bedifferenced to derive receiver-differenced measurements, eliminating ormitigating satellite-related errors (e.g., satellite clock errors) orerrors caused by the propagation media (e.g., ionosphere ortroposphere).

In some embodiments, location information (e.g., GNSS measurements,error corrections, etc.) can be transmitted between the controllingmovable object 102 and the controllable movable object 104 in order todetermine the baseline vector between the controlling movable object 102and the controllable movable object 104. Such location information canbe conveyed in one-way or two-way communication. In an example, thecontrollable movable object 104 can be configured to provide its satnavmeasurements to the controlling movable object 102, which can thencalculate the difference between its own measurements and the receivedmeasurements (i.e., receiver-differenced measurements). In anotherexample, the controlling movable object 102 can be configured to provideits satnav measurements to the controllable movable object 104, whichcan then calculate the difference between its own measurements and thereceived measurements (i.e., receiver-differenced measurements). Inanother example, the controlling movable object 102 and the controllablemovable object 104 can be configured to exchange location informationincluding satnav measurements in two-way communication.

A baseline change 108 between the controlling movable object 102 and thecontrollable movable object 104 can be determined by comparing a firstbaseline vector 106 measured at or near a first point in time, t1, and asecond baseline vector 110 measured at or near a second point in time,t2. To simplify discussion, the baseline change 108 in FIG. 1 is shownas caused by a location change of the controlling movable object 102alone while the controllable movable object 104 remains still. However,in general, the baseline change 108 can be caused by a location changeof the controlling movable object 102, the controllable movable object104, or both. The baseline change can be represented by a vectorcomprising a plurality of vector components along respective axes (e.g.,X, Y, and/or Z) of a suitable coordinate system.

The baseline change 108 can be mapped to a corresponding state change112 for the controllable movable object 104 based on a predeterminedmapping function. A state of the controllable object can be related to,for example, a position, an orientation, or a movement of thecontrollable object. For instance, a baseline change vector of (3 cm, 4cm, 5 cm) along the X, Y, and Z axes of a coordinate system may bemapped to a corresponding movement vector of (30 cm, 40 cm, 50 cm) forthe controllable movable object 104 in the same coordinate system, or ina different coordinate system. In another example, the baseline changemay be caused by a movement of the controllable movable object 104 andthe corresponding state change for the controllable movable object 104may be a reversal of that movement, so that the controllable movableobject 104 maintains substantially the same location over time (e.g., ina hovering state).

Other examples of such a state change of the controllable movable object104 can include a change in an orientation, a movement direction, avelocity or speed (linear or angular), an acceleration (linear orangular), a navigation path or pattern, an operation mode, and/or afunctionality of the controllable movable object 104. For example, aspeed of the controllable movable object 104 may increase or decrease byan amount that is calculated based on the predetermined mapping functionand the baseline change vector. In another example, a heading of thecontrollable movable object 104 may change by an angle that iscalculated based on the predetermined mapping function and the baselinechange vector. In another example, the controllable movable object 104may be flying in a circular flight path and a radius of the circularflight path may be changed according to the baseline vector change. Inanother example, the controllable movable object 104 may change from afirst type of flight path (e.g., a straight path) to a second type offlight path (e.g., an “S” shaped path).

In some other examples, a state change of the controllable movableobject 104 can include an activation, a deactivation, or otherwise acontrol of a functionality or a component of the controllable movableobject 104. Examples of such functionalities can include automaticlanding, automatic launch, hover, tracking of an object of interest(e.g., a person or a vehicle), obstacle avoidance, capturing of images(e.g., still images or videos), recording of audio signals, adjustmentof a carrier of a payload, and the like. For example, when the baselinechange is determined to match a predefined pattern (e.g., a “V” shapepattern), an imaging device onboard the controllable movable object 104may be controlled to capture one or more images.

The baseline change vector can be provided as an input to apredetermined mapping function to obtain, as an output, thecorresponding state change for the controllable movable object. Anysuitable mapping function may be provided depending on the desired typeof state change. For instance, the mapping function may map a vector toa vector, an angle of rotation, a change in speed, a change inacceleration, or any other state change such as discussed above. In someembodiments, besides the baseline change vector, the mapping functionmay also take as an input or otherwise incorporate considerations ofcontext information in providing the output. Such context informationcan include temporal and/or spatial factors, characteristics of thecontrolling movable object 102 and/or the controllable movable object104, a surrounding environment, and the like. For instance, given thesame baseline change as an input, the mapping function may produce adifferent state change as an output depending on the time of the day(e.g., daytime versus night), the location of the controlling object orcontrollable object (e.g., indoor versus outdoor), a status of thecontrollable object (e.g., a battery level), and the like.

One or more mapping function may be stored as one or more instructionsin a memory unit. The memory unit may be located on the controlledmovable object 102, the controllable movable object 104, or a differentdevice or system (e.g., a base station or a cloud computing device). Insome embodiments, a default mapping function is provided. Alternatively,the mapping function may be dynamically selected from a plurality ofmapping functions.

The selection of the mapping function may be based on any suitablecriteria, such as related to time and/or location, characteristics ofthe controlling movable object 102 and/or the controllable movableobject 104, a surrounding environment, or other context information.Different mapping functions may be selected given the same baselinechange in different contexts. In an example, different mapping functionscan correspond to different types of the controlling movable object 102and/or the controllable movable object 104. Different object types mayhave different weights, dimensions, capacities, ranges, fuel types,propulsion mechanisms, and other characteristics. In another example,one of a plurality of different mapping functions may be selected forthe same controlling movable object 102 or controllable movable object104 depending on its current state, such as its current altitude,latitude, longitude, velocity, speed, orientation, heading, and/orflight path. The current state of the controlling movable object 102 orthe controllable movable object 104 can also include status of one ormore components of the movable controllable object such as its powersupply, computer hardware or software, storage units, sensors,propulsion units, and the like. The current state of the movable objectmay be determined based on sensor data from one or more sensors onboardthe movable object. In another example, different mapping functions maybe selected based on the environment surrounding the controlling movableobject 102 and/or the controllable movable object 104. For instance,different mapping functions may be selected depending on a weathercondition, whether the movable objects are indoor or outdoor, acomplexity of the surrounding environment (e.g., terraincharacteristics, presence of obstacles, openness), a level ofinterference or SNR, and the like.

The control data for effecting the state change 112 of the controllablemovable object 104 may generated by one or more processors on thecontrolling movable object 102 and transmitted to the controllablemovable object 104. Alternatively, the control data for effecting thestate change 112 may be generated by one or more processors on thecontrollable movable object 104. In some embodiments, a combination ofthe processors on the controlling movable object 102 and thecontrollable movable object 104 may be configured to generate thecontrol data. Examples of the control data can include coordinates of atarget position for the controllable movable object 104, movement vectoror vectors for the controllable movable object 104, one or more linearor angular velocities of the controllable movable object 104 withrespect to one or more axes, one or more linear or angular accelerationsof the controllable movable object 104 with respect to one or more axes,commands for activating, deactivating, otherwise controlling one or moremodules of the controllable movable object 104, and the like. Otherexamples of the control data can include commands activating,deactivating, or otherwise control a functionality, a routine, aprocess, a component, or a payload of the controllable movable object104.

In some embodiments, the control data may be processed or executed byone or more processors or controllers onboard the movable controllableobject 104 to generate control signals for one or more modules (e.g.,propulsion units) of the controllable movable object 104 (e.g., toachieve a desired position and/or orientation of the movablecontrollable object 104). In some other embodiments, the control datamay be processed or executed directly the one or more modules to becontrolled (e.g., propulsion units, sensors).

In some embodiments, the processors onboard the controllable movableobject 104 and/or the controlling movable object 102 may implement acontrol loop feedback mechanism (also referred to as a feedback loopcontrol mechanism) such as a proportional-integral-derivative (PID)controller. The control loop feedback mechanism may be used to update acontrol variable based on a current state in order to achieve a desiredeffect. For instance, a PID controller can be configured to calculate anerror value as the difference between a current state (e.g., a currentbaseline vector between the controlling movable object 102 and thecontrollable movable object 104, a current position, velocity, oracceleration of the controllable movable object) and a target state, andattempts to minimize the error value over time by adjusting a controlvariable (e.g., an angular velocity or a velocity of the controllablemovable object 104). For instance, as shown in FIG. 1, after the statechange 112, the controllable movable object 104 may be moved to positionp4 122, and a current (third) baseline vector 114 can be calculated in asimilar fashion as for the first baseline vector 106, discussed above.The current baseline vector 114 can be compared with a target baselinevector to determine an error value. The target baseline vector may bedetermined based on a target position or a target movement vector forthe controllable movable object 104. The target position, targetmovement vector, or the target baseline vector may be determined basedon the mapping function. Alternatively, the baseline vector 114 can beused to estimate a current position, which is compared with the targetposition to derive the error value.

A control variable (e.g., a velocity or acceleration of the controllablemovable object 104) may be adjusted in more than one iterations tominimize the error value so as to achieve the target state. Generally,the more precisely the state can be measured, the more precise the errorvalue can be measured, and the more precisely the control variable canbe adjusted. Using the techniques described herein, the baseline vectorbetween the controlling movable object 102 and the controllable movableobject 104 can be measured at centimeter or sub-centimeter levelaccuracy. Accordingly, the techniques described herein can be used toprovide centimeter level or sub-centimeter level control of the movableobjects.

FIG. 2 illustrates exemplary systems for implementing the techniquesdescribed herein, in accordance with embodiments. In an exemplary system200 a, a baseline between a controlling object 202 and a controllableobject 204 can be determined based on satellite signals received by asatnav receiver 206 of the controlling object 202 and satellite signalsreceived by a satnav receiver 208 of the controllable object 204. Thesatnav receivers 206 and 208 are configured to receive satellite signalsfrom one or more satellites 210. The satellite signals can be used, byone or more processors onboard the controlling object 202 and/or thecontrollable object 204, to make satnav measurements such as related todistance, position, and time. For instance, the satellite signals can beused to determine (including estimating) locations of the controllingobject 202 and the controllable object 204. Additionally, the satellitesignals can be used to determine a baseline between the controllingobject 202 and the controllable object 204 as described herein.

The controlling object 202 and the controllable object 204 may beconfigured to communicate with each other. The communication may beone-way or two-way. The communication can utilize infrared, radio, WiFi,one or more of local area networks (LAN), wide area networks (WAN),point-to-point (P2P) networks, telecommunication networks, cloudcommunication, and the like. The communication between the controllingobject 202 and the controllable object 204 can be used to obtain orenhance satnav measurements.

In some embodiments, the controlling object 202 may be configured todetermine satnav measurements based on satellite signals received by thesatnav receiver 206 and provide the satnav measurements to thecontrollable object 204. The controllable object 204 may be configuredto determine satnav measurements based on satellite signals received bythe satnav receiver 208. Additionally, the controllable object 204 maybe configured to correct, calibrate, or otherwise improve accuracy ofthe its satnav measurements using the satnav measurements received fromthe controlling object 202. For instance, the satnav measurementsprovided by the controlling object 202 may include error informationrelated to certain satellites or the propagation media. Such errorinformation can be used by the controllable object 204 to correct itsmeasurements related to those satellite or to the propagation media. Insome other embodiments, controlling object 202 may be configured tocorrect, calibrate, or otherwise improve accuracy of the its satnavmeasurements using the satnav measurements received from thecontrollable object 202.

The satnav measurements can include or be used to determine a baselinebetween the controlling object 202 and the controllable object 208. Achange in the baseline may be mapped to a state change for thecontrollable object 204. Control signals for the effecting the statechange may be generated. In various embodiments, the baselinedetermination, mapping, and/or the control generation may be determinedby one or more processors onboard the controlling object 202, one ormore processors onboard the controllable object 204, or a combination ofboth.

For example, in an embodiment, the controlling object 202 may beconfigured to determine the baseline and a change thereof, for example,based on the measurements made by the controlling object 202 and themeasurements made by the controllable object 204. Additionally, thecontrolling object 202 may be configured to map the baseline change to astate change for the controllable object 204, generate control commandsfor effecting the state change, and sending the control commands to thecontrollable object 204. The controllable object 204 may be configuredto execute the control commands to achieve the state change. In someembodiments, the control commands can be directed to changing a position(position control commands), a velocity (velocity control commands), anacceleration (acceleration control commands), or an attitude (e.g., atitle control or an orientation control) of the controllable object 204.

In another example, the controlling object 202 may be configured todetermine the baseline and a change thereof, map the baseline change toa state change for the controllable object 204, and send the statechange to the controllable object 204. The controllable object 204 maythen generate control signals (e.g., for one or more propulsion units)for effecting the state change based on the received state change.

In another example, the controlling object 202 may be configured todetermine the baseline and a change thereof and transmit the baselineand/or baseline change to the controllable object 204. The controllableobject 204 may then map the baseline change to a state change andgenerate control signals for effecting the state change.

In another example, the controllable object 204 may be configured todetermine the baseline and a change thereof, for example, based on themeasurements made by the controlling object 202 and the measurementsmade by the controllable object 204. Additionally, the controllableobject 204 may be configured to map the baseline change to a statechange for the controllable object 204 and generate control signals foreffecting the state change.

In some embodiments, the control signals for effecting the state changecan be generated by a control loop feedback mechanism (e.g., PIDcontroller). The control loop feedback mechanism can be implemented byprocessors onboard the controllable object 204, the controlling object202, or both.

Still referring to FIG. 2, in another exemplary system 200 b, thebaseline between the controlling object 202 and a controllable object204 can be determined by a base station 212. The base station 212 caninclude any computing device (e.g., mainframe server, desktop computer,laptop, tablet, mobile phone) or any cloud-based computing service. Thecontrollable object 202 and the controllable object 204 can beconfigured to receive satellite signals from the satellite 210 asdiscussed in the system 200 a. In addition, the controllable object 202and/or the controllable object 204 can be configured to communicate withthe base station 212 using any suitable communication channel. Forexample, the controlling object 202 and/or the controllable object 204can be configured to provide measurement data (e.g., satnavmeasurements) to the base station 212. The base station 212 can beconfigured to calculate the baseline between the controlling object 202and the controllable object 204 based on the received measurement data.

In some embodiments, the base station 212 may be configured to transmitthe baseline information to the controlling object 202 and/or thecontrollable object 204, which may be configured to determine thecorresponding state change for the controllable object 204 using apredetermined mapping function. In some other embodiments, the basestation 212 may determine a state change corresponding to a baselinechange between the controlling object 202 and the controllable object204, and send information about the state change to the controllingobject 202 and/or the controllable object 204, which then generate thecorresponding control signals for effecting the state change. In someother embodiments, the base station 212 may be configured to determine astate change corresponding to a baseline change between the controllingobject 202 and the controllable object 204, generate control commandsfor effecting the state change, and send the control commands to thecontrollable object 204 and/or the controlling object 202. In someembodiments, the communication between the base station 212 and thecontrollable object 204 may be optional (as denoted by the dotted linein FIG. 2).

FIG. 3 illustrates another exemplary system 300 for implementing thetechniques described herein, in accordance with embodiments. Asillustrated, the controlling object 302 and/or the controllable object304 can be configured to communicate with one or more base stations 312.The one or more base stations 312 may each include at least satnavreceivers 314 configured to communicate with one or more satellites 310.Each of the base stations 312 may be configured to broadcast informationincluding the base station's known location as well as satnavmeasurements (e.g., pseudoranges) based on signals received by itssatnav receivers 314. The broadcast information may be received bymovable objects such as the controlling object 302 and/or thecontrollable object 304. The broadcast information may be used forcorrecting or otherwise enhancing satnav measurements obtained by themovable objects. For instance, the broadcast information may be used tocorrect satellite related errors (e.g., satellite clock bias, satelliteorbital error), account for ionospheric and/or tropospheric delay,resolve carrier phase ambiguities, and the like. Each of the basestations 312 may be configured to broadcast within a certain range(e.g., service area) and multiple base stations 312 may form a networkof base stations (e.g., Network RTK, Wide Area Real Time Kinematics(WARTK), differential GPS (DGPS) network) to provide wider coverage.

The controlling object 302 can carry a satnav receiver 306 that isconfigured to receive satellite signals from one or more satellites 310.The controllable object 304 can carry a satnav receiver 308 that isconfigured to receive satellite signals from one or more satellites 310.The satellite signals can be used to determine satnav measurements.Additionally, the satnav measurements can be corrected, augmented,enhanced, or otherwise modified based on broadcast information from oneor more base stations 312. The communication between the controllingobject 302 and the base stations 312 can be one-way (e.g., broadcastonly from the base stations 312), or two-way. The communication betweenthe controllable object 304 and the base stations 312 can be one-way(e.g., broadcast only from the base stations 312), or two-way.

The controlling object 302 and/or the controllable object 304 may beconfigured to determine the baseline between the controlling object 302and the controllable object 304 based on their satnav measurements. Forexample, in an embodiment, the controlling object 302 may be configuredto determine a first baseline between the controlling object 302 and abase station 312 (e.g., with centimeter or sub-centimeter levelaccuracy) based on the satellite signals as well as broadcastinformation from the base station 312. Likewise, the controllable object304 may be configured to determine a second baseline between thecontrollable object 304 and a base station 312 (e.g., with centimeter orsub-centimeter level accuracy) based on the satellite signals as well asbroadcast information from the base station 312. Thus, the baselinebetween the controllable object 302 and the controllable object 304 canbe determined (e.g., by one or more processors onboard the controllingobject 302 and/or the controllable object 304) based on the firstbaseline and the second baseline. Alternatively, the controlling object302 and the controllable object 304 may each determine its own locationbased on satellite signals and broadcast information from the basestation. The locations of the controlling object 302 and thecontrollable object 304 can then be used to determine the baselinebetween the controlling object 302 and the controllable object 304.Regardless of how the baseline is determined, changes in the baselinebetween the controlling object 302 and the controllable object 304 canbe detected and mapped to corresponding state changes for thecontrollable object 304 as discussed elsewhere herein.

In another embodiment, instead of using a baseline change between thecontrollable object controlling object 302 and the controllable object304 to control the controllable object 304, a location change of thecontrolling object 302 may be used to control the controllable object304. In such an embodiment, the communication between the controllableobject 304 and the base station 312 may be optional. The location changeof the controlling object 302 may be determined by comparing thebaseline between the controlling object 302 and the base station 312 atdifferent points in time. Alternatively, the location change of thecontrolling object 302 may be determined by comparing the locations(e.g., longitude and latitude) of the controlling object 302 atdifferent points in time. Subsequently, the location change of thecontrolling object 302 can be mapped to a corresponding state changesfor the controllable object 304 in a similar fashion as the mappingbetween the baseline change and the state change, as discussed elsewhereherein.

In yet another embodiment, a location change of the controllable object304 may be used to control the controllable object 304. The locationchange of the controllable object 304 may be determined by comparing thebaseline between the controllable object 304 and the base station 312 atdifferent points in time. Alternatively, the location change of thecontrollable object 304 may be determined by comparing the locations(e.g., longitude and latitude) of the controllable object 304 atdifferent points in time. Subsequently, the location change of thecontrollable object 304 can be mapped to a corresponding state changesfor the controllable object 304 in a similar fashion as for vectorchange, as discussed elsewhere herein.

FIG. 4 illustrates an exemplary controlling object 400, in accordancewith embodiments. The controlling object can include a communicationunit 402, a satnav receiver 404, one or more processors 404, one or moreinput/output devices 408, and a memory 410, all interconnected via asystem bus.

The communication unit 402 can be configured to transmit and/or receivedata from one or more external devices (e.g., a controllable object, ora base station). Any suitable means of communication can be used, suchas wired communication or wireless communication. For example, thecommunication module 1310 can utilize one or more of local area networks(LAN), wide area networks (WAN), infrared, radio, WiFi, point-to-point(P2P) networks, telecommunication networks, cloud communication, and thelike. Optionally, relay stations, such as towers, satellites, or mobilestations, can be used. Wireless communications can be proximitydependent or proximity independent. In some embodiments, line-of-sightmay or may not be required for communications. In some examples, thecommunication unit 402 can be configured to transmit satnav measurementsfrom the satnav receiver 404. In some embodiments, the communicationunit 402 may be configured to receive satnav measurements or othersensing data from one or more external devices such as a controllableobject and/or a base station. The communication unit 402 can also beconfigured to transmit processing results (e.g., control commands)produced by the one or more processors 406.

The satnav receiver 404 can be configured to acquire and track satellitesignals. Acquiring a signal is the process of determining the frequencyand code phase (both relative to receiver time) when it was previouslyunknown. Tracking is the process of continuously adjusting the estimatedfrequency and phase to match the received signal as close as possibleand therefore is a phase locked loop. The satnav receiver 404 can beconfigured to process the satellite signals received on its antenna todetermine information related to position, velocity and/or timing. Forexample, the satellite signals received by the antenna may be amplified,down converted to baseband or intermediate frequency, filtered (e.g., toremove frequencies outside the intended frequency range) anddigitalized. The order of these steps may be different than theabove-mentioned order. The digitized satellite signals may include or beused to produce satnav measurements such as those described herein.

Besides the satnav receiver 404, the controlling object 400 mayoptionally include additional sensors such as an IMU, a compass, animage sensor, and the like. The sensing data from these additionalsensors may be combined with the satnav measurements for controlling thecontrollable object.

The one or more processors 406 can include a central processing unit(CPU), a microprocessor, a field-programmable gate array (FPGA), anapplication—specific integrated circuit (ASIC), and the like. Theprocessors 406 can be operatively coupled to a memory 410. The memory410 can store logic, code, and/or program instructions executable by theprocessors 406 for performing one or more processes discussed herein(e.g., process 500 of FIG. 5 and process 7 of FIG. 7). The memory caninclude one or more non-transitory storage media (e.g., removable mediaor external storage such as an SD card or random access memory (RAM)).The memory can also store data such as satnav measurement data from thesatnav receiver 404, processing results produced by the processors 406,data related to one or more mapping functions, sensing data, and thelike.

The one or more input/output devices 408 can include one or more inputdevices to receive user input such as a touch screen, a joystick, abutton, a keyboard, a mouse, a microphone, a camera, a biometric reader,and the like. For instance, the input devices may allow a user toconfigure parameters of one or more mapping functions. The input/outputdevices 408 can include one or more output devices such as a display, aspeaker, a such as a touch screen, a joystick, a button, a keyboard, amouse, a microphone, and the like.

According to embodiments, a controllable movable object can becontrolled based on a baseline change between the controllable movableobject and a controlling movable object. The controllable movable objectcan include a UAV, or any other movable object discussed elsewhereherein. The controlling movable object can include a remote controlterminal (or remote controller), another UAV, a mobile device, or anycontrol device.

FIG. 5 illustrates an exemplary process 500 for controlling an object,in accordance with embodiments. The object may be any controllablemovable object (e.g., a UAV) as described herein. Some or all aspects ofthe process 500 (or any other processes described herein, or variationsand/or combinations thereof) may be performed by one or more processorsonboard and/or offboard a controlling object (e.g., a remote controlterminal, a UAV). Some or all aspects of the process 500 (or any otherprocesses described herein, or variations and/or combinations thereof)may be performed under the control of one or more computer/controlsystems configured with executable instructions and may be implementedas code (e.g., executable instructions, one or more computer programs orone or more applications) executing collectively on one or moreprocessors, by hardware or combinations thereof. The code may be storedon a computer-readable storage medium, for example, in the form of acomputer program comprising a plurality of instructions executable byone or more processors. The computer-readable storage medium may benon-transitory. The order in which the operations are described is notintended to be construed as a limitation, and any number of thedescribed operations may be combined in any order and/or in parallel toimplement the processes.

At block 502, a change in a baseline vector between a controllingmovable object and a controllable movable object (also referred to as abaseline change vector, a baseline change vector, or a baseline change)can be determined. The determination can be based at least in part onmeasurements from a first location sensor of the controlling movableobject and a second location sensor of the controllable movable object.The first location sensor and the second location sensor can be satnavreceivers discussed herein. The baseline change can comprise calculatinga current baseline vector between the controlling and controllableobjects and comparing the current baseline vector with apreviously-measured baseline vector. For example, thepreviously-measured baseline vector can be subtracted from the currentbaseline vector, or the current baseline vector can be subtracted fromthe previously-measured baseline vector, to obtain the baseline changevector. More detailed discussion of baseline determination is providedin connection with FIGS. 6-7.

At block 504, the baseline change determined above can be mapped to acorresponding state change for the controllable movable object based atleast in part on a predetermined mapping function. In some embodiments,the mapping function may be selected from a plurality of mappingfunctions based on a status or one or more characteristics of thecontrolling object, the controllable object, and/or the environment.More detailed discussion regarding mapping functions is provided inconnection with FIGS. 8-9.

At block 506, one or more control commands can be generated to effectthe state change of the controllable movable object. The controlcommands can be directed to changing a position (position controlcommands), a velocity (velocity control commands), an acceleration(acceleration control commands), or an attitude (e.g., a title controlor an orientation control) of the controllable object. Exemplary controlcommands may include a desired position or position difference, adesired velocity or velocity difference, a desired acceleration oracceleration difference, a desired angle of rotation, and the like.

Optionally, after the generation and/or execution of the controlcommands, the updated baseline between the controlling object and thecontrollable object can be measured and used, e.g., by a feedback loopcontroller (e.g., a PID controller), to enforce precise control of thestate of the controllable object. For instance, the updated baseline mayindicate a deviation of the controllable object from a desired position.The desired position may have been previously determined based on themapping function. Based on the deviation, additional control signals canbe generated to reduce the deviation. Such a feedback control loop cancontinue iteratively until the deviation is below a predeterminedthreshold or for a predetermined period of time.

In some embodiments, the feedback control loop described herein can beimplemented by one or more processors onboard the controllable object.That is, the controllable object may be configured to determine theupdated baseline based on updated satnav measurements from either orboth the controlling object and the controllable object (as describedelsewhere herein), and generate additional control signals to effect thedesired state. In some other embodiments, the feedback control loop canbe implemented at least in part by one or more processors onboard thecontrolling object. For instance, the calculation of the updatedbaseline may be performed by the processors of the controlling objectbased on updated satnav measurements from either or both the controllingobject and the controllable object. The update baseline may then betransmitted to the controllable object, which then generates the furthercontrol signals. Alternatively, the controlling object may generate thecontrol signals and then transmit the control signals to thecontrollable object. FIGS. 10-11 provide more detailed discussion of thefeedback control loop.

FIG. 6 illustrates a pair of exemplary receivers, r and b, withrespective satnav measurements with respect to a pair of satellites iand j, in accordance with embodiments. The satnav receiver r and thesatnav receiver b can be located respectively on a controlling objectand a controllable object such as described in FIGS. 1-2. Alternatively,one of the satnav receiver r and the satnav receiver b can be located ona base station such as described in FIG. 3, and the other receiver canbe located on a controlling object or controllable object.

Each receiver can be configured to obtain measurements with respect toeach of a plurality of satellites. The satellite signals received by thesatnav receivers can include ranging codes and navigation messages asdescribed herein. Based on satellite signals, a satnav receiver canproduce measurements or observations of certain observables for a givensatellite, including a pseudorange (PSR) and a carrier phase measurement(e.g., accumulated Doppler range (ADR)).

For instance, as illustrated in FIG. 6, the receiver r can provide a setof measurements with respect to satellite i, including the pseudorange,PSR_(r) ^(i), and the carrier phase measurement, ADR_(r) ^(i), betweenthe receiver r and the satellite i. Receiver r can also provide a set ofmeasurements with respect to satellite j, including the pseudorange,PSR_(r) ^(j), and the carrier phase measurement, ADR_(r) ^(j), betweenthe receiver r and the satellite j. Likewise, the receiver b can providetwo sets of measurements with respect to satellites i and j, the firstset of measurements for satellite i including PSR_(b) ^(i) and ADR_(b)^(i), and the second set of measurements for satellite j includingPSR_(b) ^(j) and ADR_(b) ^(j). Based on the satnav measurementsdetermined by the receivers, a baseline b_(rb) between receiver r andreceiver b can be determined.

FIG. 7 illustrates an exemplary process 700 for determining a baselinebetween a pair of receivers, in accordance with embodiments. The pair ofreceivers may be similar to the satnav receivers r and b described inFIG. 7 or elsewhere herein. In some embodiments, aspect of the process700 can be implemented by one or more processors onboard a controllingobject. Alternatively, aspects of the process 700 may be implemented bya controllable object, a base station, or any combination of the above.

At block 702, measurements with respect to one or more satellites can beprovided based at least in part on received satellite signals. Themeasurements can include multiple sets of satnav measurements, each setcorresponding to a given satellite. Each set of measurement can beobtained after a receiver successfully locks the given satellite totrack satellite signals therefrom. The measurements can includepseudorange measurements (PSR) and carrier phase measurements (ADR)discussed in FIG. 6. For instance, PSR and ADR can be expressed usingthe following equations:

$\begin{matrix}{{PSR} = {R + O + I + T + M + \left( {{\delta\; t_{u}} - {\delta\; t_{s}}} \right) + ɛ_{PSR}}} & (1) \\{{ADR} = {{\frac{1}{\lambda}\left\lbrack {R + O - I + T + M + \left( {{\delta\; t_{u}} - {\delta\; t_{s}}} \right)} \right\rbrack} + N + ɛ_{ADR}}} & (2)\end{matrix}$

In the above equations, λ is the carrier wavelength; O, I, T, and M areerrors caused respectively by the orbit, ionospheric delay, troposphericdelay, and multipath effects; δt_(u) and δt_(s) are errors associatedwith the receiver clock and the satellite clock, respectively; N is theinteger ambiguity of the carrier phase; ε_(PSR) and ε_(ADR) are receivernoises respectively associated with the pseudorange measurement and thecarrier phase measurement, respectively.

The pseudorange measurement measures a range or distance between thesatnav receiver and a satellite. The pseudorange measurement can bedetermined based on a correlation of code carried on a modulated carrierwave received from a satellite with a replica of that same codegenerated in the satnav receiver. A carrier phase measurement measuresthe range between a satellite and the satnav receiver but is expressedin units of cycles of the carrier frequency. The pseudorange measurementis typically made with a lower accuracy (e.g., in the order of meters)than the carrier phase measurement, which can be made with a higheraccuracy (e.g., in the order of millimeters). However, the integernumber of cycles or wavelengths (e.g., N in the above equation (2))between a satellite and a receiver, or the carrier phase ambiguities, isnot measurable and thus unknown. Thus, the carrier phase ambiguitiesneed to be fixed or resolved using any suitable ambiguity resolutiontechniques, such as described below.

The satnav measurements can also include errors from any of thefollowing categories: (1) satellite related errors, e.g., orbitalerrors, satellite clock errors, etc.; (2) signal propagation relatederrors, e.g., ionospheric delay, tropospheric delay, and multipatheffects; and (3) receiver-related errors, e.g., receiver clock errors,receiver measurement noise, etc. Some or all of these errors can beremoved using double differencing techniques discussed below.

At block 704, double-differenced measurements can be obtained based onmeasurements from multiple receivers. For instance, a controlling objectcan be configured to receive measurements from a controllable object, ora base station. Or, a controllable object can be configured to receivemeasurements from a controlling object, or a base station. Or, a basestation can be configured to receive measurements from a pair of satnavreceivers respectively located at a controlling object and acontrollable object.

Optionally, each satnav receiver can be configured to determine itslocation based on its own measurements (single point positioning). Forinstance, a satellite position can be calculated based on time andephemeris information (e.g., orbital parameters). The receiver positioncan be calculated based on the satellite position and the pseudorange.In some embodiments, measurements of a receiver with respect to multiplesatellites can be used to derive satellite-differenced(single-differenced) measurements. For example, using four satellitepositions and their corresponding pseudorange, a receiver's position canbe determined using nonlinear weighted iterative lease squares. Whilethe errors in the pseudorange measurements (e.g., equation (1)) can bepartially compensated using error models, the precision of single pointpositioning, evening with the error-compensated measurements, istypically at or around 10 meters or less, still too low to provideprecise control of controllable objects with satisfactory results.

In general, the measurements can be differenced to remove or cancel outerrors or ambiguities. For example, the measurements can bedouble-differenced to obtain double-difference difference measurements.That is, measurements from multiple satellites can be differenced toobtain satellite-differenced measurements (single-differencedmeasurements) in order to reduce or eliminate receiver-related biases orerrors. Similarly, measurements from multiple receivers (e.g., from thecontrolling object and from the controllable objects) can be differencedobtain receiver-differenced measurements (single-differencedmeasurements) in order to reduce or eliminate satellite-related orsignal propagation related errors. The above-describedsatellite-differencing and receiver-differencing can be combined toobtain double-differenced measurements. For instance,satellite-differenced measurements may be receiver-differenced to obtaindouble-differenced measurements. Alternatively, receiver-differencedmeasurements may be satellite-differenced to obtain double-differencedmeasurements. In some other embodiments, the measurements may bedifferenced more than twice (e.g., triple-differenced).

In an example, receiver-differenced (single-differenced) measurementsfor pseudorange and ADR with respect to satellite i can be expressedusing the following equations (3) and (4), respectively.

$\begin{matrix}{\mspace{76mu}{{PSR}_{rb}^{(i)} = {{R_{rb}^{(i)} + {c\;\delta\; t_{ur}} + ɛ_{PSR}} = {{- {I_{r}^{(i)}.b_{rb}}} + {c\;\delta\; t_{ur}} + ɛ_{PSR}}}}} & (3) \\{{ADR}_{rb}^{(i)} = {{{\frac{1}{\lambda}R_{rb}^{(i)}} + {f\;\delta\; t_{ur}} + N_{rb}^{(i)} + ɛ_{ADR}} = {{{- \frac{1}{\lambda}}{I_{r}^{(i)}.b_{rb}}} + {f\;\delta\; t_{ur}} + N_{rb}^{(i)} + ɛ_{ADR}}}} & (4)\end{matrix}$

In the above equations (3) and (4), R_(rb) ^((i)) is asingle-differenced geometric distance between receiver and satelliteantennas, c is the speed of light, λ is wavelength, f is carrierfrequency, δt_(ur) is a single-differenced clock error of receivers,ε_(PSR) and ε_(ADR) are single-differenced receiver noise of PSR andADR, respectively, N_(rb) ^((i)) is the single-differenced ambiguitiesinteger, I_(r) ^((i)) is the observed vector between the receiver r andthe satellite i, and b_(rb) is the baseline vector between receiver rand receiver b.

The double-difference measurements, pseudorange and ADR, with respect tosatellite i and satellite j can be expressed using the followingequations (5) and (6), respectively.PSR _(rb) ^((ij)) =R _(rb) ^((ij))+ε_(PSR)=−(I _(r) ^((i)) −I _(r)^((j)))b _(rb)+ε_(ADR)  (5)ADR _(rb) ^((ij)) =R _(rb) ^((ij)) +λN _(rb) ^((ij))+ε_(ADR)=−(I _(r)^((i)) −I _(r) ^((j)))b _(rb) +λN _(rb) ^((ij))+ε_(ADR)  (6)

In the above equations (5) and (6), PSR_(rb) ^((ij)) and ADR_(rb)^((ij)) are the double-differenced PSR and ADR respectively, R_(rb)^((ij)) is the double-differenced geometric distance between receiverand satellite antennas, and N_(rb) ^((ij)) is the double-differencedambiguities integer.

At block 706, carrier phase ambiguities can be fixed based on thedouble-differenced measurements. Carrier phase measurements provide ahigher level of accuracy (e.g., at centimeter level or millimeter level)than pseudorange measurements. However, the existence of ambiguitieswithin the carrier phase measurements prevents the use of suchmeasurements for single point positioning. The carrier phase ambiguitiescan be resolved or fixed using double-differenced (e.g.,receiver-differenced and satellite-differenced) measurements betweenpairs of receivers and satellites, in order to cancel out the fractionalpart of the ambiguities.

Any suitable ambiguity fixing techniques can be used. In an embodiment,a floating-point solution of single-difference ambiguities can beestimated based on the single-differenced measurements, using Kalmanfilter or similar techniques. Next, the single ambiguities are convertedto double ambiguities (e.g., N_(rb) ^((ij)) in equations (5) and (6)above) using a single-difference-to-double-difference conversion matrix,such as D shown below:

$\begin{matrix}{D = \begin{bmatrix}1 & {- 1} & 0 & \ldots & 0 \\1 & 0 & {- 1} & \ldots & 0 \\\vdots & \vdots & \vdots & \ddots & \vdots \\1 & 0 & 0 & \ldots & {- 1}\end{bmatrix}} & (7)\end{matrix}$

At block 708, a baseline between a pair of receivers can be determinedbased at least in part on the fixed carrier phase ambiguities. Forinstance, the above equations (5) and (6) can be solved to determine thebaseline b_(rb), given the fixed integer number of double-differencedambiguities (e.g., N_(rb) ^((ij)) that is determined in block 706.Advantageously, centimeter or sub-centimeter level accuracy can beprovided using the double-differenced carrier phase measurements.

Once a baseline is determined between a pair of receivers (e.g., locatedrespectively at a controlling object and a controllable object), it canbe compared with a previously-determined baseline to determine abaseline change. The baseline change can be mapped to a correspondingstate control for the controllable object based at least in part on apredetermined mapping function. FIGS. 8-9 illustrate exemplary methodsfor controlling a controllable object based at least in part on abaseline change between the controllable object and a controllingobject, in accordance with embodiments. While FIGS. 8-9 illustrate thecontrolling object as a remote controller, it is understood that thecontrolling object can include any object capable of controlling anotherobject. For instance, the controlling object can be a UAV itself.Likewise, while FIGS. 8-9 illustrate the controllable object as a UAV,it is understood that a controllable object can include any movableobject discussed herein that is capable of being controlled by anexternal device.

In some embodiments, the baseline change can be used to implementprecise 3-dimentional dimentional (3D) position control. For instance,the mapping function can map a baseline change to one or morecorresponding position control commands for moving the controllableobject along one, two, or three axes. For instance, a baseline change of3 cm, 4 cm, 5 cm along the X, Y, and Z axes of a coordinate system maybe mapped to a corresponding movement vector of 30 cm, 40 cm, 50 cm forthe controllable object in the same or a different coordinate system. Inanother example, the baseline change may be caused by a movement of thecontrollable object and the corresponding state change for thecontrollable object may be a reversal of that movement, so that thecontrollable object maintains substantially the same location over time(e.g., in a hovering state).

FIG. 8 illustrates exemplary control methods based on a baseline change,in accordance with embodiments. As illustrated, the control methods canbe used to maintain a predetermined spatial relationship (e.g., aconstant baseline vector) between a controllable object and acontrolling object.

As shown in scenario 800 a, when a controlling object moves fromposition b₁ to position b₂, and the controllable object remains atposition r₁, the baseline between the controlling object and thecontrollable object changes from l_(i) to l₂, resulting in a baselinechange, Δl=l₂−l₁. To maintain the constant baseline vector between theobjects, the baseline change, Δl, may be provided to a control loopfeedback mechanism such as illustrated in FIGS. 10-11. The control loopfeedback mechanism may output a control command P_(cmd) based on amapping function ƒ. The input to f may be Δl or −Δl. The output of f maybe a state change corresponding to the input or a control command forachieving the state change. In an example, the mapping function is f(x)=x. Thus, P_(cmd)=f(−Δl)=−Δl. In another example, the mappingfunction is f (x)=−x. Thus, P_(cmd)=f (Δl)=−Δl. The control command canbe executed by a propulsion system of the controllable object, causingthe controllable object to move from position r₁ to r₂, such that theresulting baseline, l₁, between the controlling object and thecontrollable object is substantially the same as the original baselinel₁ before the baseline change. Accordingly, the controllable object canbe controlled to follow the controlling object with high precision.

As shown in scenario 800 b, the controlling object may remain atposition b₁, while the controlling object moves from position r₁ toposition r₂, causing the baseline to change from l₁ to l₂, with abaseline change of, Δl=l₂−l₁. In some cases, the movement of thecontrolling object may be unintended. For example, the movement may becaused by an external factor (e.g., wind) or an internal factor (e.g.,sensor error). To maintain the constant baseline vector between theobjects, the baseline change, Δl, may be provided to a control loopfeedback mechanism such as illustrated in FIGS. 10-11, and mapped to acorresponding control command based on the same function ƒ as underscenario 700 a: P_(cmd)=f(−Δl)=−Δl. In another example, the mappingfunction is f (x)=−x. Thus, P_(cmd)=f (Δl)=−Δl. The control loopfeedback mechanism may output a control command P_(cmd) to a propulsionsystem of the controllable object, causing the controllable object tomove from position r₂ back to position r₁. Accordingly, when thecontrolling object remains substantially still, the controllable objectcan be controlled to substantially maintain a position (e.g., in ahovering state) with high precision, while improving the controllableobject's capability to resist external and/or internal interference.

FIG. 9 illustrates additional exemplary control methods based onbaseline change, in accordance with embodiments. The illustrated mappingbetween the baseline change between the controlling object and thecontrollable object and the corresponding state change of thecontrollable object may be more complex than those discussed in FIG. 8.

As illustrated in scenario 900 a, when the controlling object moves fromposition b₁ to position b₂, the baseline between the controlling objectand the controllable object changes from l₁ to l₂, resulting in abaseline change, Δl_(b)=l₂−l₁. The mapping function ƒ may be applied soas to cause a corresponding positional change, Δl_(r), for thecontrollable object. For instance, the mapping function may be: f(x)=Ax,where A is a predetermined scalar. The mapping function may be used togenerate the control command for the positional change: P_(cmd)=f(−Δl)or P_(cmd)=f (Δl), such that when the control command is executed by thecontrollable object, it is moved from position r₁ to r₂, resulting in anew baseline, b₃, between the controllable object and the controllingobject.

In some examples, such as illustrated, the controlling object may movealong a navigation path (e.g., a geometric shape or pattern, a number,an alphabet) with a set of characteristics or attributes (e.g., radius).The movement of the controlling object may be mapped to a correspondingmovement of the controllable object via the predetermined mappingfunction such that controllable object moves with a corresponding set ofcharacteristics (e.g., radius).

For instance, in the illustrated scenario 900 a, the controlling objectis moving along a circle around with a radius r from a center at pointO_(b). The positional change of the controlling object, Δl_(b), ismapped via the mapping function ƒ(x)=Ax, to a corresponding positionalchange Δl_(r), where the |Δl_(r)|=|A Δl_(b)|. Thus, the controllableobject may be controlled to move along a substantially similar path(e.g., a circle centered at O_(r)) with a different set ofcharacteristics, such as a larger radius R=|A|r. The center O_(r) may ormay not be at or near the location of the controlling object.

In other examples a state change of the controllable object can includea change in an orientation, a movement direction, a velocity or speed(linear or angular), an acceleration (linear or angular), and the like.For example, a speed of the controllable object may increase or decreaseby an amount or at a rate that is calculated based on the predeterminedmapping function and the baseline change. In another example, a headingof the controllable object or a rotation angle of an image device maychange by an angle or at a rate that is calculated based on thepredetermined mapping function and the baseline change.

In some embodiments, such as illustrated in scenario 900 b, the baselinechange can be used to trigger, activate, deactivate, or otherwisecontrol an operation of the controllable object. The operation controlcan be related to a functionality, a routine, a process, a component, ora payload of the controllable object. In an embodiment, the baselinechange may be processed to determine a movement pattern of thecontrollable object. For instance, when the controllable object movesfrom position b₁ to position b₂, and then from position b₂ to positionb₃, the baseline changes from l₁ to b₂ to l₃ can be analyzed by one ormore processors onboard the controllable object and/or the controllingobject to determine a “V” shape movement pattern. In some cases, thedetermination of the movement pattern can include comparing the baselinechanges with attributes of pre-stored movement templates or patterns todetermine if there is a match. The match may be determined based on anysuitable pattern recognition, statistical analysis, and/or machinelearning techniques. The matching movement pattern can then be used todetermine or select a corresponding operation for the controllableobject or a component thereof. For instance, a “V” shaped movementpattern may correspond to a command to capture one or more images (e.g.,a still image or a video) by an imaging device carried by thecontrollable object (e.g., a shutter release command). As anotherexample, when a user draws the letters “go home” using the controllingobject, a predefined, autonomous go-home routine may be activated on thecontrollable object, causing controllable object to autonomouslynavigate to a predetermined location (e.g., a takeoff location).

Additional examples of such a state change of the controllable objectcan include a change in a navigation path or pattern, an operation mode,and/or a functionality of the controllable object. For example, thecontrollable object may be controlled to change from a first type offlight path (e.g., a straight path) to a second type of flight path(e.g., an “S” shaped or a circular path) based on the baseline change.Additional examples of functionalities that may be activated ordeactivated can include automatic landing, automatic launch, hover,tracking of an object of interest (e.g., a person or a vehicle),obstacle avoidance, recording of audio signals, adjustment of a carrierof a payload, and the like. Exemplary components that can be controlledcan include propulsion units, sensors, power units (batteries), flightcontrollers, communication units, and the like. The mapping functiondiscussed herein can be considered to generally include any mappingbetween a baseline change and a corresponding state change of thecontrollable object, such as described herein.

In some embodiments, each of the control methods described abovecorresponds to a control mode and more than one control modes can beimplemented by the controlling and/or controllable object. For example,the control modes may include a tracking/following control mode such asdiscussed in FIG. 8, a positional control mode such as discussed in 900a of FIG. 9, and a pattern-based control mode such as discussed in 900 bof FIG. 9. A user may switch between the different control modes usingan input device provided by the controlling object, or another suitableterminal. The input device may include a touchscreen, a joystick, abutton, a microphone, a camera, and the like. In some cases, thecontrollable object and/or the controlling object may automaticallyswitch from one mode to another based on a current state of thecontrollable object and/or the controlling object (e.g., position,orientation, altitude, velocity, acceleration) or a component thereof(e.g., battery status, propulsion system status). In some cases, themode switch may be based on a condition of the surrounding environment(e.g., weather, obstacles, interference).

In some embodiments, some aspects of the baseline mapping describedabove may be configurable by a user or administrator. For instance, auser may be able to input, edit, or otherwise change a mapping function(including various parameters thereof) using an input device provided bythe controlling object, or another suitable terminal. For example, theinput device may enable the user to change the value of the scalar Adiscussed in connection with 900 a of FIG. 9. In another example, theinput device may allow a user to associate different mapping functionswith different situations (e.g., different baseline changes, differentUAV states, different environmental factors, etc.).

In some embodiments, the mapping functions may be pre-loaded into amemory of the controlling object and/or the controllable object beforethe controllable object is in operation (e.g., when it is landed). Insome other embodiments, updates to the mapping functions may be applieddynamically in real time or nearly real time when the controllableobject is in operation (e.g., when it is airborne).

According to embodiments, baseline measurements between a controllingobject and a controllable object can be used by a feedback loopcontroller to control a state (e.g., a position) of the controllableobject. FIG. 10 illustrates an exemplary process 1000 for controlling astate of a controllable object 1002, in accordance with embodiments.Aspects of the process 1000 can be implemented by one or more processorsonboard the controllable object, the controlling object, or both.

In some embodiments, the process 1000 can be used control a position ofthe controllable object at centimeter level or sub-centimeter levelaccuracy. For instance, a desired position of the controllable objectcan be determined based on a baseline change and a mapping functionusing process 500 of FIG. 5. Subsequently, the baseline can be measuredand the position of the controllable object can be adjusted atpredetermined frequencies so as to maintain the desired position usingthe process 1000.

As illustrated in FIG. 10, an estimated state 1006 of the controllableobject 1002 can be estimated based on the measured baseline 1004 betweenthe controllable object 1002 and the controlling object (not shown). Forexample, an estimated positon of the controllable object 1002 may bedetermined based on the baseline and a previously estimated position.The baseline measurements can be obtained using the techniques describedherein with centimeter level or sub-centimeter level accuracy. Thebaseline measurements 1004 can be obtained at predetermined frequencies.

The estimated state 1006 can be compared with a desired or referencestate 1008 to determine a state difference or error 1010. In someembodiments, the desired state 1008 may be determined based on a mappingfunction such as described herein. The state difference 1010 can be usedby a controller such as a PID controller to generate control signals foradjusting the state of the controllable object 1002, so as to reduce thestate difference 1010. Updated baseline measurements can be obtainedafter the adjustment, using the output state 1012 of the controllableobject 1002. The updated baseline measurement can then be used togenerate further controls for the controllable object as describedabove. Such a feedback control loop process 1000 can run for manyiterations. In some embodiments, aspects of the process 1000 may beimplemented by processors onboard the controllable object 1002.Alternatively, the aspects of the process 1000 may be implemented byprocessors onboard a remote device (e.g., the controlling object, a basestation).

FIG. 11 illustrates an exemplary control scheme 1100 for controlling acontrollable object such as UAV, in accordance with embodiments. Asshown in FIG. 11, a UAV 1101 can employ a control scheme 1100 thatincludes a position control component 1103, a velocity control component1104, a tilt control component 1105, and an orientation controlcomponent 1106. Some of the above components may be optional in someembodiments.

In accordance with various embodiments, a sensing system on the UAV 1101can measure the state of the UAV 1101. Additionally, the system canobtain the estimated flight status based on various data fusiontechniques 1102. The sensing system can obtain the measured UAVposition, velocity, orientation, tilt, and/or angular velocity. Forexample, a GPS sensor can obtain the estimated position of the UAV 1101,an IMU, which may include a gyroscope, accelerometer, and magnetometercan obtain the estimated acceleration and angular velocity of the UAV1101, as well as the estimated orientation of the UAV 1101.

In accordance with various embodiments, the control scheme 1100 can beadjusted for controlling the UAV 1101 in different circumstances. Forexample, in order to maintain the UAV 1101 hovering at a fixed positionor traveling along a desired path, the position control component 1103can generate a desired velocity 1122 to counter any drift movement ofthe UAV 1101 away from its desired position 1121. Furthermore, thevelocity control component 1104 can generate desired tilt 1123 forachieving the desired velocity 1122. Then, the tilt control component1105 can generate motor control signals for achieving the desired tilt1123 based on the estimated tilt 1114 and estimated angular velocity1115. Such motor control signals can be used for controlling the variousmovement mechanics 1131-1133 associated with the UAV 1101.

As shown in FIG. 11, a position control component 1103 can obtain adesired velocity 1122 based on the difference of the desired position1121 and the estimated position 1111. In some embodiments, the positioncontrol components 1103 may be configured to receive the differencebetween the desired position and the estimated position (e.g., from aremote controller). Also, a velocity control component 1104 can obtainthe desired tilt 1123 based on the difference between the desiredvelocity 1122 and the estimated velocity 1112. Additionally, a titlecontrol component 1105 can calculate the motor control signals based onthe estimated angular velocity 1115 and the difference between thedesired tilt 1123 and the estimated tilt 1114.

Also, the UAV 1101 can maintain a fixed orientation or a desiredorientation, the orientation control component can generate motorcontrol signals for generating a force that can counter any drift of theUAV orientation. Also as shown in FIG. 11, an orientation controlcomponent 1106 can generate the motor control signals based on thedifference between the desired orientation 1124 and the estimatedorientation 1113. Thus, the combined or integrated motor control signalscan be used for controlling the various movement mechanics 1131-1133associated with the UAV 1101, the movement characteristics of which canbe measured and can be used for generating further control signals forcontrolling the UAV 1101 in real-time.

The systems, devices, and methods described herein can be applied to awide variety of movable objects. As previously mentioned, anydescription herein of an aerial vehicle, such as a UAV, may apply to andbe used for any movable object. Any description herein of an aerialvehicle may apply specifically to UAVs. A movable object of the presentdisclosure can be configured to move within any suitable environment,such as in air (e.g., a fixed-wing aircraft, a rotary-wing aircraft, oran aircraft having neither fixed wings nor rotary wings), in water(e.g., a ship or a submarine), on ground (e.g., a motor vehicle, such asa car, truck, bus, van, motorcycle, bicycle; a movable structure orframe such as a stick, fishing pole; or a train), under the ground(e.g., a subway), in space (e.g., a spaceplane, a satellite, or aprobe), or any combination of these environments. The movable object canbe a vehicle, such as a vehicle described elsewhere herein. In someembodiments, the movable object can be carried by a living subject, ortake off from a living subject, such as a human or an animal. Suitableanimals can include avines, canines, felines, equines, bovines, ovines,porcines, delphines, rodents, or insects.

The movable object may be capable of moving freely within theenvironment with respect to six degrees of freedom (e.g., three degreesof freedom in translation and three degrees of freedom in rotation).Alternatively, the movement of the movable object can be constrainedwith respect to one or more degrees of freedom, such as by apredetermined path, track, or orientation. The movement can be actuatedby any suitable actuation mechanism, such as an engine or a motor. Theactuation mechanism of the movable object can be powered by any suitableenergy source, such as electrical energy, magnetic energy, solar energy,wind energy, gravitational energy, chemical energy, nuclear energy, orany suitable combination thereof. The movable object may beself-propelled via a propulsion system, as described elsewhere herein.The propulsion system may optionally run on an energy source, such aselectrical energy, magnetic energy, solar energy, wind energy,gravitational energy, chemical energy, nuclear energy, or any suitablecombination thereof. Alternatively, the movable object may be carried bya living being.

In some instances, the movable object can be an aerial vehicle. Forexample, aerial vehicles may be fixed-wing aircraft (e.g., airplane,gliders), rotary-wing aircraft (e.g., helicopters, rotorcraft), aircrafthaving both fixed wings and rotary wings, or aircraft having neither(e.g., blimps, hot air balloons). An aerial vehicle can beself-propelled, such as self-propelled through the air. A self-propelledaerial vehicle can utilize a propulsion system, such as a propulsionsystem including one or more engines, motors, wheels, axles, magnets,rotors, propellers, blades, nozzles, or any suitable combinationthereof. In some instances, the propulsion system can be used to enablethe movable object to take off from a surface, land on a surface,maintain its current position and/or orientation (e.g., hover), changeorientation, and/or change position.

The movable object can be controlled remotely by a user or controlledlocally by an occupant within or on the movable object. The movableobject may be controlled remotely via an occupant within a separatevehicle. In some embodiments, the movable object is an unmanned movableobject, such as a UAV. An unmanned movable object, such as a UAV, maynot have an occupant onboard the movable object. The movable object canbe controlled by a human or an autonomous control system (e.g., acomputer control system), or any suitable combination thereof. Themovable object can be an autonomous or semi-autonomous robot, such as arobot configured with an artificial intelligence.

The movable object can have any suitable size and/or dimensions. In someembodiments, the movable object may be of a size and/or dimensions tohave a human occupant within or on the vehicle. Alternatively, themovable object may be of size and/or dimensions smaller than thatcapable of having a human occupant within or on the vehicle. The movableobject may be of a size and/or dimensions suitable for being lifted orcarried by a human. Alternatively, the movable object may be larger thana size and/or dimensions suitable for being lifted or carried by ahuman. In some instances, the movable object may have a maximumdimension (e.g., length, width, height, diameter, diagonal) of less thanor equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m. Themaximum dimension may be greater than or equal to about: 2 cm, 5 cm, 10cm, 50 cm, 1 m, 2 m, 5 m, or 10 m. For example, the distance betweenshafts of opposite rotors of the movable object may be less than orequal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m, or 10 m.Alternatively, the distance between shafts of opposite rotors may begreater than or equal to about: 2 cm, 5 cm, 10 cm, 50 cm, 1 m, 2 m, 5 m,or 10 m.

In some embodiments, the movable object may have a volume of less than100 cm×100 cm×100 cm, less than 50 cm×50 cm×30 cm, or less than 5 cm×5cm×3 cm. The total volume of the movable object may be less than orequal to about: 1 cm³, 2 cm³, 5 cm³, 10 cm³, 20 cm³, 30 cm³, 40 cm³, 50cm³, 60 cm³, 70 cm³, 80 cm³, 90 cm³, 100 cm³, 150 cm³, 200 cm³, 300 cm³,500 cm³, 750 cm³, 1000 cm³, 5000 cm³, 10,000 cm³, 100,000 cm³3, 1 m³, or10 m³. Conversely, the total volume of the movable object may be greaterthan or equal to about: 1 cm³, 2 cm³, 5 cm³, 10 cm³, 20 cm³, 30 cm³, 40cm³, 50 cm³, 60 cm³, 70 cm³, 80 cm³, 90 cm³, 100 cm³, 150 cm³, 200 cm³,300 cm³, 500 cm³, 750 cm³, 1000 cm³, 5000 cm³, 10,000 cm³, 100,000 cm³,1 m³, or 10 m³.

In some embodiments, the movable object may have a footprint (which mayrefer to the lateral cross-sectional area encompassed by the movableobject) less than or equal to about: 32,000 cm², 20,000 cm², 10,000 cm²,1,000 cm², 500 cm², 100 cm², 50 cm², 10 cm², or 5 cm². Conversely, thefootprint may be greater than or equal to about: 32,000 cm², 20,000 cm²,10,000 cm², 1,000 cm², 500 cm², 100 cm², 50 cm², 10 cm², or 5 cm².

In some instances, the movable object may weigh no more than 1000 kg.The weight of the movable object may be less than or equal to about:1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60 kg, 50kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10 kg, 9 kg,8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1 kg, 0.05 kg,or 0.01 kg. Conversely, the weight may be greater than or equal toabout: 1000 kg, 750 kg, 500 kg, 200 kg, 150 kg, 100 kg, 80 kg, 70 kg, 60kg, 50 kg, 45 kg, 40 kg, 35 kg, 30 kg, 25 kg, 20 kg, 15 kg, 12 kg, 10kg, 9 kg, 8 kg, 7 kg, 6 kg, 5 kg, 4 kg, 3 kg, 2 kg, 1 kg, 0.5 kg, 0.1kg, 0.05 kg, or 0.01 kg.

In some embodiments, a movable object may be small relative to a loadcarried by the movable object. The load may include a payload and/or acarrier, as described in further detail elsewhere herein. In someexamples, a ratio of a movable object weight to a load weight may begreater than, less than, or equal to about 1:1. In some instances, aratio of a movable object weight to a load weight may be greater than,less than, or equal to about 1:1. Optionally, a ratio of a carrierweight to a load weight may be greater than, less than, or equal toabout 1:1. When desired, the ratio of an movable object weight to a loadweight may be less than or equal to: 1:2, 1:3, 1:4, 1:5, 1:10, or evenless. Conversely, the ratio of a movable object weight to a load weightcan also be greater than or equal to: 2:1, 3:1, 4:1, 5:1, 10:1, or evengreater.

In some embodiments, the movable object may have low energy consumption.For example, the movable object may use less than about: 5 W/h, 4 W/h, 3W/h, 2 W/h, 1 W/h, or less. In some instances, a carrier of the movableobject may have low energy consumption. For example, the carrier may useless than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less. Optionally,a payload of the movable object may have low energy consumption, such asless than about: 5 W/h, 4 W/h, 3 W/h, 2 W/h, 1 W/h, or less.

The UAV can include a propulsion system having four rotors. Any numberof rotors may be provided (e.g., one, two, three, four, five, six, ormore). The rotors, rotor assemblies, or other propulsion systems of theunmanned aerial vehicle may enable the unmanned aerial vehicle tohover/maintain position, change orientation, and/or change location. Thedistance between shafts of opposite rotors can be any suitable length.For example, the length can be less than or equal to 2 m, or less thanequal to 5 m. In some embodiments, the length can be within a range from40 cm to 1 m, from 10 cm to 2 m, or from 5 cm to 5 m. Any descriptionherein of a UAV may apply to a movable object, such as a movable objectof a different type, and vice versa.

In some embodiments, the movable object can be configured to carry aload. The load can include one or more of passengers, cargo, equipment,instruments, and the like. The load can be provided within a housing.The housing may be separate from a housing of the movable object, or bepart of a housing for a movable object. Alternatively, the load can beprovided with a housing while the movable object does not have ahousing. Alternatively, portions of the load or the entire load can beprovided without a housing. The load can be rigidly fixed relative tothe movable object. Optionally, the load can be movable relative to themovable object (e.g., translatable or rotatable relative to the movableobject). The load can include a payload and/or a carrier, as describedelsewhere herein.

In some embodiments, the movement of the movable object, carrier, andpayload relative to a fixed reference frame (e.g., the surroundingenvironment) and/or to each other, can be controlled by a terminal. Theterminal can be a remote control device at a location distant from themovable object, carrier, and/or payload. The terminal can be disposed onor affixed to a support platform. Alternatively, the terminal can be ahandheld or wearable device. For example, the terminal can include asmartphone, tablet, laptop, computer, glasses, gloves, helmet,microphone, or suitable combinations thereof. The terminal can include auser interface, such as a keyboard, mouse, joystick, touchscreen, ordisplay. Any suitable user input can be used to interact with theterminal, such as manually entered commands, voice control, gesturecontrol, or position control (e.g., via a movement, location or tilt ofthe terminal).

The terminal can be used to control any suitable state of the movableobject, carrier, and/or payload. For example, the terminal can be usedto control the position and/or orientation of the movable object,carrier, and/or payload relative to a fixed reference from and/or toeach other. In some embodiments, the terminal can be used to controlindividual elements of the movable object, carrier, and/or payload, suchas the actuation assembly of the carrier, a sensor of the payload, or anemitter of the payload. The terminal can include a wirelesscommunication device adapted to communicate with one or more of themovable object, carrier, or payload.

The terminal can include a suitable display unit for viewing informationof the movable object, carrier, and/or payload. For example, theterminal can be configured to display information of the movable object,carrier, and/or payload with respect to position, translationalvelocity, translational acceleration, orientation, angular velocity,angular acceleration, or any suitable combinations thereof. In someembodiments, the terminal can display information provided by thepayload, such as data provided by a functional payload (e.g., imagesrecorded by a camera or other image capturing device).

Optionally, the same terminal may both control the movable object,carrier, and/or payload, or a state of the movable object, carrierand/or payload, as well as receive and/or display information from themovable object, carrier and/or payload. For example, a terminal maycontrol the positioning of the payload relative to an environment, whiledisplaying image data captured by the payload, or information about theposition of the payload. Alternatively, different terminals may be usedfor different functions. For example, a first terminal may controlmovement or a state of the movable object, carrier, and/or payload whilea second terminal may receive and/or display information from themovable object, carrier, and/or payload. For example, a first terminalmay be used to control the positioning of the payload relative to anenvironment while a second terminal displays image data captured by thepayload. Various communication modes may be utilized between a movableobject and an integrated terminal that both controls the movable objectand receives data, or between the movable object and multiple terminalsthat both control the movable object and receives data. For example, atleast two different communication modes may be formed between themovable object and the terminal that both controls the movable objectand receives data from the movable object.

FIG. 12 illustrates a movable object 1200 including a carrier 1202 and apayload 1204, in accordance with embodiments. Although the movableobject 1200 is depicted as an aircraft, this depiction is not intendedto be limiting, and any suitable type of movable object can be used, aspreviously described herein. One of skill in the art would appreciatethat any of the embodiments described herein in the context of aircraftsystems can be applied to any suitable movable object (e.g., an UAV). Insome instances, the payload 1204 may be provided on the movable object1200 without requiring the carrier 1202. The movable object 1200 mayinclude propulsion mechanisms 1206, a sensing system 1208, and acommunication system 1210.

The propulsion mechanisms 1206 can include one or more of rotors,propellers, blades, engines, motors, wheels, axles, magnets, or nozzles,as previously described. The movable object may have one or more, two ormore, three or more, or four or more propulsion mechanisms. Thepropulsion mechanisms may all be of the same type. Alternatively, one ormore propulsion mechanisms can be different types of propulsionmechanisms. The propulsion mechanisms 1206 can be mounted on the movableobject 1200 using any suitable means, such as a support element (e.g., adrive shaft) as described elsewhere herein. The propulsion mechanisms1206 can be mounted on any suitable portion of the movable object 1200,such on the top, bottom, front, back, sides, or suitable combinationsthereof.

In some embodiments, the propulsion mechanisms 1206 can enable themovable object 1200 to take off vertically from a surface or landvertically on a surface without requiring any horizontal movement of themovable object 1200 (e.g., without traveling down a runway). Optionally,the propulsion mechanisms 1206 can be operable to permit the movableobject 1200 to hover in the air at a specified position and/ororientation. One or more of the propulsion mechanisms 1200 may becontrolled independently of the other propulsion mechanisms.Alternatively, the propulsion mechanisms 1200 can be configured to becontrolled simultaneously. For example, the movable object 1200 can havemultiple horizontally oriented rotors that can provide lift and/orthrust to the movable object. The multiple horizontally oriented rotorscan be actuated to provide vertical takeoff, vertical landing, andhovering capabilities to the movable object 1200. In some embodiments,one or more of the horizontally oriented rotors may spin in a clockwisedirection, while one or more of the horizontally rotors may spin in acounterclockwise direction. For example, the number of clockwise rotorsmay be equal to the number of counterclockwise rotors. The rotation rateof each of the horizontally oriented rotors can be varied independentlyin order to control the lift and/or thrust produced by each rotor, andthereby adjust the spatial disposition, velocity, and/or acceleration ofthe movable object 1200 (e.g., with respect to up to three degrees oftranslation and up to three degrees of rotation).

The sensing system 1208 can include one or more sensors that may sensethe spatial disposition, velocity, and/or acceleration of the movableobject 1200 (e.g., with respect to up to three degrees of translationand up to three degrees of rotation). The one or more sensors caninclude global positioning system (GPS) sensors, motion sensors,inertial sensors, proximity sensors, or image sensors. The sensing dataprovided by the sensing system 1208 can be used to control the spatialdisposition, velocity, and/or orientation of the movable object 1200(e.g., using a suitable processing unit and/or control module, asdescribed below). Alternatively, the sensing system 1208 can be used toprovide data regarding the environment surrounding the movable object,such as weather conditions, proximity to potential obstacles, locationof geographical features, location of manmade structures, and the like.

The communication system 1210 enables communication with terminal 1212having a communication system 1214 via wireless signals 1216. Thecommunication systems 1210, 1214 may include any number of transmitters,receivers, and/or transceivers suitable for wireless communication. Thecommunication may be one-way communication; such that data can betransmitted in only one direction. For example, one-way communicationmay involve only the movable object 1200 transmitting data to theterminal 1212, or vice-versa. The data may be transmitted from one ormore transmitters of the communication system 1210 to one or morereceivers of the communication system 1212, or vice-versa.Alternatively, the communication may be two-way communication, such thatdata can be transmitted in both directions between the movable object1200 and the terminal 1212. The two-way communication can involvetransmitting data from one or more transmitters of the communicationsystem 1210 to one or more receivers of the communication system 1214,and vice-versa.

In some embodiments, the terminal 1212 can provide control data to oneor more of the movable object 1200, carrier 1202, and payload 1204 andreceive information from one or more of the movable object 1200, carrier1202, and payload 1204 (e.g., position and/or motion information of themovable object, carrier or payload; data sensed by the payload such asimage data captured by a payload camera). In some instances, controldata from the terminal may include instructions for relative positions,movements, actuations, or controls of the movable object, carrier and/orpayload. For example, the control data may result in a modification ofthe location and/or orientation of the movable object (e.g., via controlof the propulsion mechanisms 1206), or a movement of the payload withrespect to the movable object (e.g., via control of the carrier 1202).The control data from the terminal may result in control of the payload,such as control of the operation of a camera or other image capturingdevice (e.g., taking still or moving pictures, zooming in or out,turning on or off, switching imaging modes, change image resolution,changing focus, changing depth of field, changing exposure time,changing viewing angle or field of view). In some instances, thecommunications from the movable object, carrier and/or payload mayinclude information from one or more sensors (e.g., of the sensingsystem 1208 or of the payload 1204). The communications may includesensed information from one or more different types of sensors (e.g.,GPS sensors, motion sensors, inertial sensor, proximity sensors, orimage sensors). Such information may pertain to the position (e.g.,location, orientation), movement, or acceleration of the movable object,carrier and/or payload. Such information from a payload may include datacaptured by the payload or a sensed state of the payload. The controldata provided transmitted by the terminal 1212 can be configured tocontrol a state of one or more of the movable object 1200, carrier 1202,or payload 1204. Alternatively or in combination, the carrier 1202 andpayload 1204 can also each include a communication module configured tocommunicate with terminal 1212, such that the terminal can communicatewith and control each of the movable object 1200, carrier 1202, andpayload 1204 independently.

In some embodiments, the movable object 1200 can be configured tocommunicate with another remote device in addition to the terminal 1212,or instead of the terminal 1212. The terminal 1212 may also beconfigured to communicate with another remote device as well as themovable object 1200. For example, the movable object 1200 and/orterminal 1212 may communicate with another movable object, or a carrieror payload of another movable object. When desired, the remote devicemay be a second terminal or other computing device (e.g., computer,laptop, tablet, smartphone, or other mobile device). The remote devicecan be configured to transmit data to the movable object 1200, receivedata from the movable object 1200, transmit data to the terminal 1212,and/or receive data from the terminal 1212. Optionally, the remotedevice can be connected to the Internet or other telecommunicationsnetwork, such that data received from the movable object 1200 and/orterminal 1212 can be uploaded to a website or server.

FIG. 13 is a schematic illustration by way of block diagram of a system1300 for controlling a movable object, in accordance with embodiments.The system 1300 can be used in combination with any suitable embodimentof the systems, devices, and methods disclosed herein. The system 1300can include a sensing module 1302, processing unit 1304, non-transitorycomputer readable medium 1306, control module 1308, and communicationmodule 1310.

The sensing module 1302 can utilize different types of sensors thatcollect information relating to the movable objects in different ways.Different types of sensors may sense different types of signals orsignals from different sources. For example, the sensors can includeinertial sensors, GPS sensors, proximity sensors (e.g., lidar), orvision/image sensors (e.g., a camera). The sensing module 1302 can beoperatively coupled to a processing unit 1304 having a plurality ofprocessors. In some embodiments, the sensing module can be operativelycoupled to a transmission module 1312 (e.g., a Wi-Fi image transmissionmodule) configured to directly transmit sensing data to a suitableexternal device or system. For example, the transmission module 1312 canbe used to transmit images captured by a camera of the sensing module1302 to a remote terminal.

The processing unit 1304 can have one or more processors, such as aprogrammable or non-programmable processor (e.g., a central processingunit (CPU), a microprocessor, an FPGA, an application—specificintegrated circuit (ASIC)). The processing unit 1304 can be operativelycoupled to a non-transitory computer readable medium 1306. Thenon-transitory computer readable medium 1306 can store logic, code,and/or program instructions executable by the processing unit 1304 forperforming one or more steps. The non-transitory computer readablemedium can include one or more memory units (e.g., removable media orexternal storage such as an SD card or random access memory (RAM)). Insome embodiments, data from the sensing module 1302 can be directlyconveyed to and stored within the memory units of the non-transitorycomputer readable medium 1306. The memory units of the non-transitorycomputer readable medium 1306 can store logic, code and/or programinstructions executable by the processing unit 1304 to perform anysuitable embodiment of the methods described herein. The memory unitscan store sensing data from the sensing module to be processed by theprocessing unit 1304. In some embodiments, the memory units of thenon-transitory computer readable medium 1306 can be used to store theprocessing results produced by the processing unit 1304.

In some embodiments, the processing unit 1304 can be operatively coupledto a control module 1308 configured to control a state of the movableobject. For example, the control module 1308 can be configured tocontrol the propulsion mechanisms of the movable object to adjust thespatial disposition, velocity, and/or acceleration of the movable objectwith respect to six degrees of freedom. Alternatively or in combination,the control module 1308 can control one or more of a state of a carrier,payload, or sensing module.

The processing unit 1304 can be operatively coupled to a communicationmodule 1310 configured to transmit and/or receive data from one or moreexternal devices (e.g., a terminal, display device, or other remotecontroller). Any suitable means of communication can be used, such aswired communication or wireless communication. For example, thecommunication module 1310 can utilize one or more of local area networks(LAN), wide area networks (WAN), infrared, radio, WiFi, point-to-point(P2P) networks, telecommunication networks, cloud communication, and thelike. Optionally, relay stations, such as towers, satellites, or mobilestations, can be used. Wireless communications can be proximitydependent or proximity independent. In some embodiments, line-of-sightmay or may not be required for communications. The communication module1310 can transmit and/or receive one or more of sensing data from thesensing module 1302, processing results produced by the processing unit1304, predetermined control data, user commands from a terminal orremote controller, and the like.

The components of the system 1300 can be arranged in any suitableconfiguration. For example, one or more of the components of the system1300 can be located on the movable object, carrier, payload, terminal,sensing system, or an additional external device in communication withone or more of the above. Additionally, although FIG. 13 depicts asingle processing unit 1304 and a single non-transitory computerreadable medium 1306, one of skill in the art would appreciate that thisis not intended to be limiting, and that the system 1300 can include aplurality of processing units and/or non-transitory computer readablemedia. In some embodiments, one or more of the plurality of processingunits and/or non-transitory computer readable media can be situated atdifferent locations, such as on the movable object, carrier, payload,terminal, sensing module, additional external device in communicationwith one or more of the above, or suitable combinations thereof, suchthat any suitable aspect of the processing and/or memory functionsperformed by the system 1300 can occur at one or more of theaforementioned locations.

While some embodiments of the present disclosure have been shown anddescribed herein, it will be obvious to those skilled in the art thatsuch embodiments are provided by way of example only. Numerousvariations, changes, and substitutions will now occur to those skilledin the art without departing from the disclosure. It should beunderstood that various alternatives to the embodiments of thedisclosure described herein may be employed in practicing thedisclosure. It is intended that the following claims define the scope ofthe invention and that methods and structures within the scope of theseclaims and their equivalents be covered thereby.

What is claimed is:
 1. A computer-implemented method for controlling acontrollable object, comprising: determining a change in a baselinevector between a controlling object and the controllable object based onmeasurements from a first location sensor of the controlling object anda second location sensor of the controllable object; determining acontrol mode, the control mode being a tracking/following control mode,a positional control mode, or a pattern-based control mode; determininga mapping function based on the control mode; mapping the change in thebaseline vector to a corresponding change in a navigation path of thecontrollable object based at least in part on the mapping function;generating one or more control commands according to the mapping; andcontrolling the controllable object to effect the change in thenavigation path according to the one or more control commands.
 2. Themethod of claim 1, wherein determining the change in the baseline vectorcomprises performing double-differencing on the measurements from thefirst location sensor and the second location sensor to obtaindouble-differenced measurements.
 3. The method of claim 1, wherein thechange in the navigation path comprises a change from a first type ofnavigation path to a second type of navigation path.
 4. The method ofclaim 1, wherein the change in the navigation path comprises changing anattribute of a predetermined pattern.
 5. The method of claim 4, whereinthe attribute comprises a radius.
 6. The method of claim 1, wherein themapping function is dynamically selected from a plurality of mappingfunctions.
 7. The method of claim 6, wherein the selection of themapping function is based at least in part on characteristics of thecontrolling object or the controllable object, or a surroundingenvironment.
 8. The method of claim 1, further comprising mapping thechange in the baseline vector to an activation or a deactivation of apredefined routine of the controllable object.
 9. The method of claim 1,further comprising mapping the change in the baseline vector to anoperation of a component or a payload of the controllable object. 10.The method of claim 9, wherein the operation comprises obtaining sensingdata by the component or the payload.
 11. A remote control terminal,comprising: a satnav receiver configured to receive satellite signalsfrom one or more satellites; a memory that stores one or morecomputer-executable instructions; and one or more processors configuredto access the memory and execute the computer-executable instructions toperform a method comprising: determining a change in a baseline vectorbetween the remote control terminal and the controllable object based onmeasurements from a first location sensor of the remote control terminaland a second location sensor of the controllable object; determining acontrol mode, the control mode being a tracking/following control mode,a positional control mode, or a pattern-based control mode; determininga mapping function based on the control mode; mapping the change in thebaseline vector to a corresponding change in a navigation path of thecontrollable object based at least in part on the mapping function;generating one or more control commands according to the mapping; andcontrolling the controllable object to effect the change in thenavigation path according to the one or more control commands.
 12. Theremote control terminal of claim 11, wherein the controllable object isan unmanned aerial vehicle (UAV).
 13. The remote control terminal ofclaim 11, wherein determining the change in the baseline vectorcomprises performing double-differencing on the measurements from thefirst location sensor and the second location sensor to obtaindouble-differenced measurements.
 14. The remote control terminal ofclaim 11, wherein the change in the navigation path comprises a changefrom a first type of navigation path to a second type of navigationpath.
 15. The remote control terminal of claim 11, wherein the change inthe navigation path comprises changing an attribute of a predeterminedpattern.
 16. The remote control terminal of claim 15, wherein theattribute comprises a radius.
 17. The remote control terminal of claim11, wherein the mapping function is dynamically selected from aplurality of mapping functions based at least in part on characteristicsof the remote control terminal or the controllable object, or asurrounding environment.
 18. The remote control terminal of claim 11,wherein the method further comprises mapping the change in the baselinevector to an activation or a deactivation of a predefined routine of thecontrollable object.
 19. The remote control terminal of claim 11,wherein the method further comprises mapping the change in the baselinevector to an operation of a component or a payload of the controllableobject.
 20. One or more non-transitory computer-readable storage mediastoring computer-executable instructions that, when executed by acomputing system, configure the computing system to perform operationscomprising: determining a change in a baseline vector between acontrolling object and the controllable object based on measurementsfrom a first location sensor of the controlling object and a secondlocation sensor of the controllable object; determining a control mode,the control mode being a tracking/following control mode, a positionalcontrol mode, or a pattern-based control mode; determining a mappingfunction based on the control mode; mapping the change in the baselinevector to a corresponding change in a navigation path of thecontrollable object based at least in part on the mapping function;generating one or more control commands according to the mapping; andcontrolling the controllable object to effect the change in thenavigation path according to the one or more control commands.